package com.Maykk.Demo01;

import java.lang.reflect.Constructor;

/**
 * @ClassName: Demo02
 * @Description: TODO 反射获取类的构造方法
 * @Author: MaykkStar@163.com
 */
public class Demo02 {
    public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException {
        Class<Student> stuClass = Student.class;
        // Class<?> stuClass = Class.forName("com.Maykk.Demo01.Student");

        // getConstructors 方法可以获取类中的公有构造方法
        // 如果获取不到，则会出现异常
        // Constructor<?>[] cons = stuClass.getConstructors();
        // for (Constructor<?> con : cons) {
        //     System.out.println(con);
        // }

        // 获取类中带参的构造方法，获取不到则会报错
        // Constructor<?> con01 = stuClass.getConstructor(String.class,int.class);
        // System.out.println(con01);


        // getDeclaredConstructors 方法可以获取类中所有构造方法，包括私有的和受保护的构造方法
        // Constructor<?>[] dCons = stuClass.getDeclaredConstructors();
        // for (Constructor<?> dCon : dCons) {
        //     System.out.println(dCon);
        // }

        // 获取当前类中任意构造方法
        // Constructor<?> con02 = stuClass.getDeclaredConstructor(String.class, int.class, float.class);
        // System.out.println(con02);
    }
}
